package org.fioma.tree.suffixTree.memory;

import org.fioma.tree.TreeHandler;
import org.fioma.tree.bytes.LabelRefBytesIndex;
import org.fioma.tree.bytes.LabelRefBytesIndexFactory;

public interface SuffixTreeHandlerMemory<I extends InternalSuffixNodeMemory<I, F, N>, F extends LeafSuffixNodeMemory<I, F, N>, N extends SuffixNodeMemory<I, F, N>>
		extends TreeHandler<LabelRefBytesIndex, I, F, N> {

	public Memory getMemory();

	public LabelRefBytesIndexFactory getLabelFactory();

	public I createInternalNode(long pos);

	public F createLeafNode(long pos);

	public N[] createChildrenNodes();

}
